// @ts-ignore
/* eslint-disable */
import request from '@/request'

/** 根据项目团队id查询团队信息 GET /api/team/${param0} */
export async function getTeamInfoByIdUsingGet(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.getTeamInfoByIdUsingGETParams,
  options?: { [key: string]: any }
) {
  const { id: param0, ...queryParams } = params
  return request<API.RduiwuxinxiVO>(`/api/team/${param0}`, {
    method: 'GET',
    params: { ...queryParams },
    ...(options || {}),
  })
}

/** 删除队伍信息(解散项目团队) DELETE /api/team/${param0} */
export async function removeTeamInfoUsingDelete(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.removeTeamInfoUsingDELETEParams,
  options?: { [key: string]: any }
) {
  const { id: param0, ...queryParams } = params
  return request<API.R>(`/api/team/${param0}`, {
    method: 'DELETE',
    params: { ...queryParams },
    ...(options || {}),
  })
}

/** 添加成员(邀请) POST /api/team/addTeamMember */
export async function addTeamMemberUsingPost(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.addTeamMemberUsingPOSTParams,
  body: API.yonghuxinxiVO[],
  options?: { [key: string]: any }
) {
  return request<API.Rlong>('/api/team/addTeamMember', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    params: {
      ...params,
    },
    data: body,
    ...(options || {}),
  })
}

/** 同意加入队伍 POST /api/team/agreeJoinTeam */
export async function agreeJoinTeamUsingPost(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.agreeJoinTeamUsingPOSTParams,
  options?: { [key: string]: any }
) {
  return request<API.Rstring>('/api/team/agreeJoinTeam', {
    method: 'POST',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 新增队伍信息(创建项目) POST /api/team/createTeam */
export async function addTeamInfoUsingPost(
  body: API.duiwuxinxiduixiang,
  options?: { [key: string]: any }
) {
  return request<API.Rduiwuxinxiduixiang>('/api/team/createTeam', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}

/** 剔除团队成员 DELETE /api/team/deleteTeamMember/${param0}/${param1}/${param2} */
export async function delectTeamMemberUsingDelete(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.delectTeamMemberUsingDELETEParams,
  options?: { [key: string]: any }
) {
  const { team: param0, user: param1, isTeacher: param2, ...queryParams } = params
  return request<API.R>(`/api/team/deleteTeamMember/${param0}/${param1}/${param2}`, {
    method: 'DELETE',
    params: { ...queryParams },
    ...(options || {}),
  })
}

/** 带条件分页查询学生与队伍互选邀请 POST /api/team/getTeamMemberStudent */
export async function getTeamMemberStudentUsingPost(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.getTeamMemberStudentUsingPOSTParams,
  body: API.duiwuchengyuanguanliduixiang,
  options?: { [key: string]: any }
) {
  return request<API.MyPageVoListhuxuanxinxiduiwuxueshengVO>('/api/team/getTeamMemberStudent', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    params: {
      ...params,
    },
    data: body,
    ...(options || {}),
  })
}

/** 带条件分页查询老师与队伍互选邀请 POST /api/team/getTeamMemberTeacher */
export async function getTeamMemberTeacherUsingPost(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.getTeamMemberTeacherUsingPOSTParams,
  body: API.duiwulaoshiguanliduixiang,
  options?: { [key: string]: any }
) {
  return request<API.MyPageVoListhuxuanxinxiduiwuzhidaolaoshiVO>('/api/team/getTeamMemberTeacher', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    params: {
      ...params,
    },
    data: body,
    ...(options || {}),
  })
}

/** 带条件分页查询老师指导的队伍列表 POST /api/team/guide */
export async function guideUsingPost(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.guideUsingPOSTParams,
  options?: { [key: string]: any }
) {
  return request<API.MyPageVoListduiwuxinxiVO>('/api/team/guide', {
    method: 'POST',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 加入队伍 POST /api/team/joinTeam */
export async function joinTeamUsingPost(
  body: API.duiwuchengyuanDTO,
  options?: { [key: string]: any }
) {
  return request<API.R>('/api/team/joinTeam', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}

/** 带条件分页查询队伍列表 POST /api/team/list */
export async function listUsingPost2(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.listUsingPOST2Params,
  body: API.duiwuxinxiduixiang,
  options?: { [key: string]: any }
) {
  return request<API.MyPageVo>('/api/team/list', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    params: {
      ...params,
    },
    data: body,
    ...(options || {}),
  })
}

/** 查询自己发布招募的队伍 POST /api/team/listMyPublishedTeams */
export async function listMyPublishedTeamsUsingPost(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.listMyPublishedTeamsUsingPOSTParams,
  options?: { [key: string]: any }
) {
  return request<API.MyPageVo>('/api/team/listMyPublishedTeams', {
    method: 'POST',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 根据队伍id查询队伍成员列表 GET /api/team/Member/${param0} */
export async function getMemberStudentByTeamIdUsingGet(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.getMemberStudentByTeamIdUsingGETParams,
  options?: { [key: string]: any }
) {
  const { team: param0, ...queryParams } = params
  return request<API.RHashMapstring>(`/api/team/Member/${param0}`, {
    method: 'GET',
    params: {
      ...queryParams,
    },
    ...(options || {}),
  })
}

/** 退出队伍 POST /api/team/quit/${param0} */
export async function quitUsingPost(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.quitUsingPOSTParams,
  options?: { [key: string]: any }
) {
  const { team: param0, ...queryParams } = params
  return request<API.R>(`/api/team/quit/${param0}`, {
    method: 'POST',
    params: { ...queryParams },
    ...(options || {}),
  })
}

/** 拒绝用户加入队伍 POST /api/team/refuseJoinTeam */
export async function refuseJoinTeamUsingPost(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.refuseJoinTeamUsingPOSTParams,
  options?: { [key: string]: any }
) {
  return request<API.Rstring>('/api/team/refuseJoinTeam', {
    method: 'POST',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 负责人位置转让 POST /api/team/transfer/${param0}/${param1} */
export async function transferUsingPost(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.transferUsingPOSTParams,
  options?: { [key: string]: any }
) {
  const { team: param0, user: param1, ...queryParams } = params
  return request<API.Rboolean>(`/api/team/transfer/${param0}/${param1}`, {
    method: 'POST',
    params: { ...queryParams },
    ...(options || {}),
  })
}

/** 修改队伍信息 PUT /api/team/update */
export async function editTeamInfoUsingPut(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.editTeamInfoUsingPUTParams,
  body: API.duiwuxinxiduixiang,
  options?: { [key: string]: any }
) {
  return request<API.Rduiwuxinxiduixiang>('/api/team/update', {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json',
    },
    params: {
      ...params,
    },
    data: body,
    ...(options || {}),
  })
}

/** 修改用户与队伍互选关系 PUT /api/team/updateTeamMember/${param0}/${param1} */
export async function updateTeamMemberUsingPut(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.updateTeamMemberUsingPUTParams,
  body: API.duiwuchengyuanDTO,
  options?: { [key: string]: any }
) {
  const { isTeacher: param0, id: param1, ...queryParams } = params
  return request<API.R>(`/api/team/updateTeamMember/${param0}/${param1}`, {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json',
    },
    params: { ...queryParams },
    data: body,
    ...(options || {}),
  })
}

/** 前台文件上传 POST /api/team/uploads */
export async function uploadFilesUsingPost(body: string, options?: { [key: string]: any }) {
  return request<Record<string, any>>('/api/team/uploads', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}
